from flask import render_template
from flask.cli import load_dotenv
from flask_socketio import emit

from init_app import app, socket_io

load_dotenv()


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/api/hello')
def hello_world():  # put application's code here
    """
    http 协议
    接收数据，处理任务，返回结果

    可以查看 flask 文档，https://flask.palletsprojects.com/en/stable/quickstart/
    :return:
    """
    return {
        'status': 0,  # 0 表示成功，正数表示失败码
        'message': 'success',
        'data': {
            'id': 1,
            'name': 'hello'
        }
    }


@socket_io.on('message')
def handle_message(data):
    """
    socket io

    https://flask-socketio.readthedocs.io/en/latest/getting_started.html

    :param data:
    :return:
    """
    print(f'received message: {data}')

    # 不同的 event ，可以返回不同的数据
    emit('response1', {'message': f'response1 {data}'})
    emit('response2', {'message': 'response2 msg'})
    emit('response1', {'message': 'response1 msg'})


if __name__ == '__main__':
    app.run()
